﻿



using InterfaceStudy;


//接口本身不能实例化
//接口支持多继承
//但是可以用派生类的对象来初始化
        //多态写法： 父类实例化子类就是多态的写法，接口也是父类，抽象类也是父类，普通类也是父类
IPay iPay = new ZhiFuBaoPay();//(多态写法) 父类实例化子类都是多态的写法。
IPay iPay1 = new WechatPay(); //用WechatPay 类的对象来初始化

//调用接口
iPay.Pay();

//这样的话，我们以后就不再依赖于实现，我们只依赖于接口，通过接口的多态直接就可以调用不同的支付方式。我们的程序，不和接口中具体实现的类打交道，只和接口打交道。


//这样的方式，就是依赖于实现，如果程序中删除了Z和iFuBao类，将会报错(相当于把键盘鼠标集成在了主板上，一单键盘鼠标损坏，主板就报错不能用了)
ZhiFuBaoPay zhiFuBaoPay = new ZhiFuBaoPay();



//多继承使用
IPerson iPerson = new Studnet();
iPerson.Think();//IPerson接口实例化student类，那通过IPerson接口只能调用Student类中实现的IPerson的方法。


IAnimal iAnimal = new Studnet();
iAnimal.Run();//IAnimal接口实例化student类，那通过IAnimal接口只能调用Student类中实现的IAnimal的方法。
iPerson.Run();

//接口是可以被其他接口继承的，比如 IB接口继承IA接口，并且IB中增加声明了一些方法和属性，那么实现IB的排声类要实现IA和IB中所有的方法。


Console.ReadLine();